This invention relates generally to global associative memory systems, and more particularly to an extended operating set for improved performance of tuple space fine grained system control.
Tuple spaces provide a unique form of flexibility in the sharing of information and the coordination of applications. As described in greater detail below, tuples are collections of key-value pairs stored in a tuple space that can be queried based on the matching of anti-tuples by tuples. The original Linda model by David Gelernter (N. Carriero and D. Gelernter, xe2x80x9cLinda in contextxe2x80x9d, Communications of the ACM, 32(4):444-458, April 1989) has found widespread use in collaboration of distinct functional entities. Traditional tuple space operations are performed on single tuples as coordinating mechanisms for providing coarse-grained control. However, such prior art systems are unsuitable for providing fine-grained control of system operation.
For example, the inventors have contemplated the application of tuple spaces to the operation of presence and location systems that require fine-grained operations in which large numbers of tuples are issued and retracted for each state change of the system. Consequently, there is a need to extend the traditional tuple space operations to accommodate the high-speed issuance and retraction of large numbers of tuples and anti-tuples.
According to the present invention, a plurality of new tuple-space operators is provided for enhancing the capability of tuple spaces to provide fine-grained control of presence and location systems. New Deactivate/Activate and Mass Timer Extension operators may be applied simultaneously to large numbers of tuples and anti-tuples, thereby improving system responsiveness. A new Query operator greatly increases the ability of presence and location systems to guarantee that private information in the tuple space remains private.
More particularly, in the original Linda model tuples and anti-tuples are inserted and removed from the tuple space one at a time by the various operators. This has been found to be unsatisfactory for fine-grained control of a system since any system state change may require the removal and insertion of large numbers of tuples. The new Deactivate/Activate operation either activates or deactivates all tuples that match a template, in a single operation. Tuples are not removed or inserted, as in the prior art, but are marked with a newly defined flag that indicates that they either should or should not be subject to matching. This greatly enhances the responsiveness of the tuple space when used for fine-grained control.
Many extensions of Linda have addressed the problem of tuple xe2x80x9cgarbage collectionxe2x80x9d by providing individual tuple timers that remove orphan tuples at their expiry times. This solution is adequate but timers are notoriously difficult to manage. A timeout that is too short will destabilize the standard operation of a system while a timeout that is too long wastes valuable tuple memory. The new Mass Timer Extension operation automatically extends the timeout period for all tuples that match a particular template.
Finally, tuple spaces are ideal for the sharing of information about human beings as well as applications. Indeed it is contemplated that tuple spaces will be increasingly used in open environments with users in who are related in no other way to each other than by the use of the tuple space. In such situations, there is a danger of malfeasance by malicious users who may attempt to illicitly use the tuple space. A major example of this is in the case of presence systems in which private information about individuals is shared with trusted parties. It is important in such situations that this information be protected against the inquiries of malicious parties. The new Query operation returns a list of all anti-tuples that are looking for tuples that match a specific template, which can be used, for among other things, to identify all anti-tuples that match a specific individual""s presence tuples. Unauthorized anti-tuples can be detected by this operation and removed. The Query operator does not have to rely on detecting the activity of the malicious user when he/she inserts an offending anti-tuple, which makes the systems very robust in face of privacy attacks
The new operations provided according to the present invention enable tuple spaces to be used as the base platform for call processing architectures providing addition and creation of features on the fly.